﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Espam.Idiomas.Decimo.Tesis.Datos;
using System.Data;
using System.Data.SqlClient;

namespace Espam.Idiomas.Decimo.Tesis.Negocio
{
    public class Codigos
    {
        public int idCodigo { get; set; }
        public string codigo { get; set; }
        public string equivalente { get; set; }

        public List<Codigos> GetCodigos()
        {
            BaseDatos oBase = new BaseDatos();
            List<Codigos> lista = new List<Codigos>();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_getCodigoModulos");
                SqlCommand comando = new SqlCommand();
                comando.CommandText = consulta;
                comando.Connection = oBase.conexion;
                comando.CommandType = CommandType.StoredProcedure;
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Codigos codigos = new Codigos();
                    codigos.idCodigo = reader.GetInt32(0);
                    codigos.codigo = reader.GetString(1);
                    codigos.equivalente = reader.GetString(2);
                    lista.Add(codigos);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return lista;
        }

        public string InsertCodigo()
        {
            string mensaje = "";
            BaseDatos oBase = new BaseDatos();
            SqlDataReader reader=null;
            try
            {
                string consulta = string.Format("sp_insertCodigoModulo");
                SqlCommand comando = new SqlCommand(consulta, oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("codigo", codigo);
                comando.Parameters.AddWithValue("equivalente", equivalente);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
        }
        public List<Codigos> GetCodigoById()
        {
            BaseDatos oBase = new BaseDatos();
            List<Codigos> lista = new List<Codigos>();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_getCodigoById");
                SqlCommand comando = new SqlCommand(consulta,oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("idCodigo", idCodigo);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Codigos oCodigo = new Codigos();
                    oCodigo.idCodigo = reader.GetInt32(0);
                    oCodigo.codigo = reader.GetString(1);
                    oCodigo.equivalente=reader.GetString(2);
                    lista.Add(oCodigo);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                oBase.CerrarConexion(); 
            }
            return lista;
            
        }
        public string EditCodigo()
        {
            string mensaje = "";
            BaseDatos oBase = new BaseDatos();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_editCodigo");
                SqlCommand comando = new SqlCommand(consulta, oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("idCodigo", idCodigo);
                comando.Parameters.AddWithValue("codigo", codigo);
                comando.Parameters.AddWithValue("equivalente", equivalente);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {
                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;

        }
    }
}
